<?php
include_once dirname(dirname(__FILE__)) . "/filtro_cabecera.php";
include_once dirname(dirname(dirname(__FILE__))) . "/funciones/funciones_php.php";
header('Content-Type: text/html; charset=ISO-8859-1');
$idCliente = $_SESSION['id_cliente'];

//Entra solo si buscado y opcion no estan vacios
if(isset($_POST['opcion'],$_POST['buscado']) && !empty($_POST['opcion']))
{
    
    //Asigana valores recibidos del formulario
    $buscado = trim($_POST['buscado']);
    $opcion = trim($_POST['opcion']);
    
    //if(!limpiaString($buscado)) die("Lo buscado debe ser alfa numerico");  
    
    $idCliente = $_SESSION['id_cliente'];//Asigna id de cliente
    $numFilas = 0;
    $consulta = 0;
    $conexion = conectar();
    
    //Si busca por numero de orden de flete
    if($opcion == 'idOrden'){   
        
        //Valida si el valor ingresado es entero
        if( !validaInt($buscado) ){
            die("Error el valor ingresado no es entero");
        }
        else{
      
            //crea la consulta
            $sql = sprintf("SELECT of.id_orden_flete,
                            of.recepcionado_por ,
                            to_char(of.fecha_emision,'DD-MM-YYYY HH24:MI:SS') as fecha_emision,
                            to_char(of.fecha_entrega,'DD-MM-YYYY HH24:MI:SS') as fecha_entrega,
                            of.direccion_consignatario as direccion,
                            of.numero_direccion as num_direccion,
                            of.numero_depto as depto,
                            (of.nombre_consignatario || ' ' || of.apellido_consignatario) as nombrecon,
                            co.comuna as comuna,
                            eo.estado as estado,
                            retiro.nombre as retiro,
                            entrega.nombre as entrega,
                            ts.servicio as servicio,
                            enc.num_factura
                             
                            FROM
                            orden_flete of,
                            estado_orden eo,
                            empleado retiro,
                            empleado entrega,
                            comuna co,
                            tipo_servicio ts,
                            encomienda enc
                        
                            WHERE
                            of.id_orden_flete = '%d'
                            AND of.id_cliente = '%s'
                            AND of.id_tipo_servicio = '2'
                            AND enc.id_orden_flete = of.id_orden_flete
                            AND ts.id_tipo_servicio = of.id_tipo_servicio
                            AND retiro.id_empleado = of.id_empleado_retiro
                            AND entrega.id_empleado = of.id_empleado_entrega
                            AND eo.id_estado_orden = of.id_estado_orden
                            AND co.id_comuna = of.id_comuna
                            ORDER BY of.fecha_emision DESC",
                            pg_escape_bytea($buscado),pg_escape_string($idCliente));
            
        
            $consulta = pg_query($sql)or die("error");
            $numFilas = pg_num_rows($consulta);
        }
    } //Si busca por cliente
    elseif($opcion == 'cliente') {
    
        if(isset($_POST['desde'],$_POST['hasta']) && !empty($_POST['desde']) && !empty($_POST['hasta'])){
            
            $desde = fechaSql($_POST['desde']) or die("error en la fecha");
            $hasta = fechaSql($_POST['hasta']) or die("error en la fecha");
            $desde = $desde . " 00:00:00.000";
            $hasta = $hasta . " 23:59:59.999";
    
            $sql = sprintf("SELECT of.id_orden_flete,
                            of.recepcionado_por,
                            to_char(of.fecha_emision,'DD-MM-YYYY HH24:MI:SS') as fecha_emision,
                            to_char(of.fecha_entrega,'DD-MM-YYYY HH24:MI:SS') as fecha_entrega,
                            of.direccion_consignatario as direccion,
                            of.numero_direccion as num_direccion,
                            of.numero_depto as depto,
                            (of.nombre_consignatario || ' ' ||  of.apellido_consignatario) as nombrecon,
                            eo.estado as estado,
                            retiro.nombre as retiro,
                            entrega.nombre as entrega,
                            co.comuna as comuna,
                            ts.servicio as servicio,
                            enc.num_factura
                        
                        FROM orden_flete of,
                            estado_orden eo,
                            empleado retiro,
                            empleado entrega,
                            comuna co,
                            tipo_servicio ts,
                            encomienda enc
                        
                        WHERE (of.nombre_consignatario || ' ' || of.apellido_consignatario) ILIKE'%%%s%%'
                            AND of.id_cliente = '%s'
                            AND of.id_tipo_servicio = '2'
                            AND of.fecha_emision BETWEEN ('%s') AND ('%s')
                            AND enc.id_orden_flete = of.id_orden_flete
                            AND retiro.id_empleado = of.id_empleado_retiro
                            AND entrega.id_empleado = of.id_empleado_entrega
                            AND eo.id_estado_orden = of.id_estado_orden
                            AND co.id_comuna = of.id_comuna
                            AND ts.id_tipo_servicio = of.id_tipo_servicio
                        ORDER BY of.fecha_emision DESC",
                        pg_escape_string($buscado),pg_escape_string($idCliente),pg_escape_string($desde),pg_escape_string($hasta));
            $consulta = pg_query($sql) or die("Error");
            $numFilas = pg_num_rows($consulta);
        }
        else
        {
            die("Debe indicar el intervalo de fecha de busqueda");
        }
        
    }
    elseif($opcion == 'comprobante'){
		//Valida si el valor ingresado es entero
        if( !validaInt($buscado) ){
            die("Error el valor ingresado no es entero");
        }
        else{
            //$buscado = (int) $buscado;
			
            //crea la consulta
            $sql = sprintf("SELECT com.id_comprobante, com.fecha_emision, of.id_orden_flete,
                            of.recepcionado_por ,
                            to_char(of.fecha_emision,'DD-MM-YYYY HH24:MI:SS') as fecha_emision,
                            to_char(of.fecha_entrega,'DD-MM-YYYY HH24:MI:SS') as fecha_entrega,
                            of.direccion_consignatario as direccion,
                            of.numero_direccion as num_direccion,
                            of.numero_depto as depto,
                            (of.nombre_consignatario || ' ' ||  of.apellido_consignatario) as nombrecon,
                            co.comuna as comuna,
                            eo.estado as estado,
                            retiro.nombre as retiro,
                            entrega.nombre as entrega,
                            ts.servicio as servicio,
                            enc.num_factura
                             
                            FROM
                            orden_flete of,
                            estado_orden eo,
                            empleado retiro,
                            empleado entrega,
                            comuna co,
                            comprobante com,
                            tipo_servicio ts,
                            encomienda enc
                        
                            WHERE
                            of.id_cliente = '%s'
							              AND com.id_comprobante = '%d'
                            AND of.id_comprobante = com.id_comprobante
                            AND of.id_tipo_servicio = '2'
                            AND enc.id_orden_flete = of.id_orden_flete
                            AND retiro.id_empleado = of.id_empleado_retiro
                            AND entrega.id_empleado = of.id_empleado_entrega
                            AND eo.id_estado_orden = of.id_estado_orden
                            AND co.id_comuna = of.id_comuna
                            AND ts.id_tipo_servicio = of.id_tipo_servicio
                            ORDER BY of.fecha_emision DESC",
                            pg_escape_string($idCliente),pg_escape_bytea($buscado));
            
        
            $consulta = pg_query($sql)or die("error");
            $numFilas = pg_num_rows($consulta);
        }
	}
  elseif($opcion == 'factura'){   
        
        //Valida si el valor ingresado es entero
        if( !validaInt($buscado) ){
            die("Error el valor ingresado no es entero");
        }
        else{
      
            //crea la consulta
            $sql = sprintf("SELECT of.id_orden_flete,
                            of.recepcionado_por ,
                            to_char(of.fecha_emision,'DD-MM-YYYY HH24:MI:SS') as fecha_emision,
                            to_char(of.fecha_entrega,'DD-MM-YYYY HH24:MI:SS') as fecha_entrega,
                            of.direccion_consignatario as direccion,
                            of.numero_direccion as num_direccion,
                            of.numero_depto as depto,
                            (of.nombre_consignatario || ' ' || of.apellido_consignatario) as nombrecon,
                            co.comuna as comuna,
                            eo.estado as estado,
                            retiro.nombre as retiro,
                            entrega.nombre as entrega,
                            ts.servicio as servicio,
                            encomienda.num_factura
                             
                            FROM
                            orden_flete of,
                            estado_orden eo,
                            empleado retiro,
                            empleado entrega,
                            comuna co,
                            tipo_servicio ts,
                            encomienda
                        
                            WHERE
                            encomienda.num_factura = '%s'
                            AND of.id_orden_flete = encomienda.id_orden_flete
                            AND of.id_cliente = '%s'
                            AND of.id_tipo_servicio = '2'
                            AND ts.id_tipo_servicio = of.id_tipo_servicio
                            AND retiro.id_empleado = of.id_empleado_retiro
                            AND entrega.id_empleado = of.id_empleado_entrega
                            AND eo.id_estado_orden = of.id_estado_orden
                            AND co.id_comuna = of.id_comuna
                            ORDER BY of.fecha_emision DESC",
                            pg_escape_bytea($buscado),pg_escape_string($idCliente));
            
        
            $consulta = pg_query($sql)or die("error");
            $numFilas = pg_num_rows($consulta);
        }
    }
    elseif($opcion == 'todo'){
    
        if(isset($_POST['desde'],$_POST['hasta']) && !empty($_POST['desde']) && !empty($_POST['hasta'])){
            
            $desde = fechaSql($_POST['desde']) or die("error en la fecha");
            $hasta = fechaSql($_POST['hasta']) or die("error en la fecha");
            $desde = $desde . " 00:00:00.000";
            $hasta = $hasta . " 23:59:59.999"; 
      
            //crea la consulta
             $sql = sprintf("SELECT of.id_orden_flete,
                            of.recepcionado_por,
                            to_char(of.fecha_emision,'DD-MM-YYYY HH24:MI:SS') as fecha_emision,
                            to_char(of.fecha_entrega,'DD-MM-YYYY HH24:MI:SS') as fecha_entrega,
                            of.direccion_consignatario as direccion,
                            of.numero_direccion as num_direccion,
                            of.numero_depto as depto,
                            (of.nombre_consignatario || ' ' ||  of.apellido_consignatario) as nombrecon,
                            eo.estado as estado,
                            retiro.nombre as retiro,
                            entrega.nombre as entrega,
                            co.comuna as comuna,
                            ts.servicio as servicio,
                            enc.num_factura
                        
                        FROM orden_flete of,
                            estado_orden eo,
                            empleado retiro,
                            empleado entrega,
                            comuna co,
                            tipo_servicio ts,
                            encomienda enc
                        
                        WHERE 
                            of.id_cliente = '%s'
                            AND of.fecha_emision BETWEEN ('%s') AND ('%s')
                            AND of.id_tipo_servicio = '2'
                            AND enc.id_orden_flete = of.id_orden_flete
                            AND retiro.id_empleado = of.id_empleado_retiro
                            AND entrega.id_empleado = of.id_empleado_entrega
                            AND eo.id_estado_orden = of.id_estado_orden
                            AND co.id_comuna = of.id_comuna
                            AND ts.id_tipo_servicio = of.id_tipo_servicio
                        ORDER BY of.fecha_emision DESC",
                        pg_escape_string($idCliente),pg_escape_string($desde),pg_escape_string($hasta));
            
        
            $consulta = pg_query($sql)or die("error");
            $numFilas = pg_num_rows($consulta);
        
        }
    } //Si busca po
   
    
    //Muestra los resultados en una tabla
    if($numFilas > 0)
    {
       $fila = pg_fetch_all($consulta);
       include_once dirname(dirname(__FILE__)) . "/buscar_orden_factura/proceso_buscar_orden_flete_factura_view.php";
          
    }
    else
    {
        echo "No hubo resultados";
    }       
            
    //Cierra la conexion
    pg_close($conexion);
}
else
{
    echo "Faltan datos por completar.";
}
?>
   